from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
import time

from PIL import Image
from PIL import ImageGrab

import requests
from hashlib import md5
from bs4 import BeautifulSoup


opt=Options()
opt.add_experimental_option('excludeSwitches',['enable-automation'])#关闭自动化提示
opt.add_argument("--start-maximized")#最大化
opt.add_argument('ignore-certificate-errors')#加上不出现私密连接
bro=webdriver.Chrome(r'C:\Users\hsk\Downloads\chromedriver_win32/chromedriver.exe',options=opt)


bro.get('https://10.6.133.106/ydata/login.do')
bro.implicitly_wait(40)

username=bro.find_element_by_name("userId")
password=bro.find_element_by_name("passwd")
vdcode=bro.find_element_by_name("imgtvalidate")
vdcode_img=bro.find_element_by_xpath('//*[@id="img"]')

#time.sleep(20)
username.send_keys('140700zgq')
#time.sleep(8)
password.send_keys('lwzb*123!')

location=vdcode_img.location

size=vdcode_img.size
print(location,size)
box=(location['x'],location['y']+70,location['x']+size['width'],location['y']+70+size['height'])
print(box)

bro.save_screenshot('c:\\users\\hsk\desktop\\vdcode_3.png')
img=Image.open('c:\\users\\hsk\desktop\\vdcode_3.png')
vdcode_path='c:\\users\\hsk\\desktop\\vdcode_4.png'

frame=ImageGrab.grab(box)

#frame.show()
frame.save(vdcode_path)



class Chaojiying_Client(object):

    def __init__(self, username, password, soft_id):
        self.username = username
        password =  password.encode('utf8')
        self.password = md5(password).hexdigest()
        self.soft_id = soft_id
        self.base_params = {
            'user': self.username,
            'pass2': self.password,
            'softid': self.soft_id,
        }
        self.headers = {
            'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
        }

    def PostPic(self, im, codetype):
        """
        im: 图片字节
        codetype: 题目类型 参考 http://www.chaojiying.com/price.html
        """
        params = {
            'codetype': codetype,
        }
        params.update(self.base_params)
        files = {'userfile': ('ccc.jpg', im)}
        r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
        return r.json()

    def ReportError(self, im_id):
        """
        im_id:报错题目的图片ID
        """
        params = {
            'id': im_id,
        }
        params.update(self.base_params)
        r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
        return r.json()

chaojiying = Chaojiying_Client('zgq001', 'zgq071726', '924951')
im = open(vdcode_path, 'rb').read()
result=chaojiying.PostPic(im, 1004)['pic_str']
print(result)

vdcode.send_keys(result)
#time.sleep(2)
login=bro.find_element_by_xpath('/html/body/map/area[1]')
#time.sleep(3)
login.click()

bro.switch_to.frame('olp_leftFrame')
bro.find_element_by_xpath('//*[@id="item6"]').click()
bro.find_element_by_xpath('//*[@id="M04"]/tbody/tr[1]/td[2]/a').click()
bro.switch_to.default_content()

#????????????????
bro.switch_to.frame('olp_mainFrame')
bro.find_element_by_xpath('//*[@id="tables"]/tbody/tr[24]/td[3]/a').click()
bro.switch_to.default_content()
#//*[@id="tables"]/tbody/tr[24]/td[3]/a
#<a href="javascript:void(0);" onclick="forwardToQuery('8600000002020102907400424');return false;">财务状况</a>
#//tbody/tr[24]/td[3]/a[1]
#bro.quit()
'''
#time.sleep(10)
bro.switch_to.frame('treeFrame')
bro.find_element_by_xpath('//*[@id="F861407000000000"]').click()
bro.switch_to.default_content()

bro.switch_to.frame('workFrame')
select = Select(bro.find_element_by_name("period"))
select.select_by_visible_text("2021年9月")
#print(select)
bro.switch_to.default_content()
'''

resp = requests.get('https://10.6.133.106/ydata/jsp/index.jsp')
resp.encoding = resp.apparent_encoding

main_page = BeautifulSoup(resp.text, "html.parser")
print(main_page)